package com.ruoyi.modules.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.modules.bean.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.modules.vo.SelectUserVo;
import com.ruoyi.modules.vo.XdrwVo;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
* @author zzw
* @description 针对表【t_rwb(任务表)】的数据库操作Service
* @createDate 2024-03-29 15:33:14
*/
public interface TRwbService extends IService<TRwb> {

    AjaxResult addxdwj(XdrwVo xdrwV);
    AjaxResult addZjxdwj(XdrwVo xdrwV);
    AjaxResult addAppZjxdwj(XdrwVo xdrwV);

    PageInfo<TRwb> getRwPage(Map<String, String> params);
    PageInfo<TZjxdRwb> getZjxdRwPage(Map<String, Object> params);
    PageInfo<TZjxdRwb> getAppZjxdRwPage(Map<String, Object> params);

    TRwb getRwbInfo(String sid);
    TZjxdRwb getAppUserListByZjxdId(String sid);

    void delRwByIds(XdrwVo xdrwVo);
    void delZjxdRwByIds(XdrwVo xdrwVo);

    void export(Map<String, String> params, HttpServletResponse response);

    void updateRwb(XdrwVo xdrwVo);

    AjaxResult getFkxxByUserId(Map<String, String> params);
    AjaxResult getHistoryFkxxByUserId(Map<String, String> params);

    AjaxResult getFkxxInfo(Map<String, String> params);

    AjaxResult submitFk(XdrwVo xdrwVo);
    AjaxResult submitAppZjxdFk(XdrwVo xdrwVo);


    AjaxResult getFkFj(Map<String, String> params);
    AjaxResult getZjxdFkFj(Map<String, String> params);

//    AjaxResult getTxlDeptByid(String id);

//    AjaxResult getSelectUser(SelectUserVo selectUserVo);

    AjaxResult getTxlTab();

    String getOpenUserId(Map<String, Object> map);

    TableDataInfo getSelectUserPage(Map<String,String> params);
    Page<TUser> getSelectZjxdUserPage(Map<String,String> params);

    PageInfo<TUserFk> getUserByRwId(Map<String, String> params);
    PageInfo<TOption> getZjxdUserByRwId(Map<String, String> params);

    AjaxResult tranMessageByUser(XdrwVo xdrwVo);

    AjaxResult updateIsTranBySid(String sid,Boolean isUpdate,String ly);

    AjaxResult getLoginUserInfoByAppToken(String token,String appCode);

    AjaxResult getDepartmentList(Map<String, String> params);
    AjaxResult getDepartmentList1(Map<String, String> params);

    AjaxResult andUserByDeptAndLaber(SelectUserVo selectUserVo);

    AjaxResult getUserLabelList(Map<String, String> params);

    AjaxResult updateCysjByfkId(Map<String, String> params);

    AjaxResult importData(List<TUserExcel> userList,String workid);

    TZjxdRwb getZjxdRwbInfo(String sid);
    TZjxdRwb getAppZjxdRwbInfo(String sid, String username);

    void updateZjxdRwb(XdrwVo xdrwVo);

    AjaxResult tranXdrw(XdrwVo xdrwVo);
    AjaxResult tranAppXdrw(XdrwVo xdrwVo);
    AjaxResult tranXdrwToUser(XdrwVo xdrwVo);
    AjaxResult tranAppXdrwToUser(XdrwVo xdrwVo);

    AjaxResult queryUserByUsername(String username);

    AjaxResult getSonDeptOptionInfo(Map<String, String> params);
    AjaxResult getSonDeptOptionInfoById(Map<String, String> params);

    AjaxResult getDeptByUserId(XdrwVo xdrwVo);

    PageInfo<Map> getChildOptions(Map<String, String> params);

    List<Map<String, Integer>> getSxlxCountData(Map<String, String> params);

    void delSelectUser(XdrwVo xdrwVo);

    AjaxResult delRedisUserByKey(Map<String, String> params);

    AjaxResult messageSendByLimit(XdrwVo xdrwVo);
    AjaxResult ssmSendByLimit(XdrwVo xdrwVo);

    AjaxResult getXdrwByWorkid(Map<String, String> params);

    AjaxResult getFkIdByRwbAndUserId(Map<String, String> params);

    AjaxResult getUserDepartment(Map<String, String> params);

    AjaxResult getMyToDo(Map<String, String> params);

    AjaxResult getMyToDoDone(Map<String, String> params);

    AjaxResult getInstitutionCount(Map<String, String> params);

    PageInfo<TRwb> getYfbxx(Map<String, String> params);

    AjaxResult getStatisticsSelectData(Map<String, Object> params);
}
